#ifndef Model_h__
#define Model_h__

#include <glm.hpp>
#include <Platform.h>

namespace le
{
	class Model
	{
	public:
		struct VertexType
		{
			glm::vec3 vertexPos;
			glm::vec3 color;
		};

	public:
		Model();
		virtual ~Model();

		inline const uint32 GetNumVertices() const {return m_NumVertices;}
		inline const uint32 GetNumIndices() const {return m_NumIndices;}
		inline const VertexType* GetVertexBuffer() const {return m_Vertices;}
		inline const uint32* GetIndexBuffer() const {return m_IndexBuffer;}

		unsigned int GetVertexBufferId() const { return m_VertexBufferId; }
		unsigned int GetIndexBufferId() const { return m_IndexBufferId; }

		void InitBuffers();

	protected:
		VertexType* m_Vertices;
		uint32* m_IndexBuffer;
		uint32 m_NumVertices;
		uint32 m_NumIndices;

	private:
		unsigned int m_VertexBufferId;
		unsigned int m_IndexBufferId;
	};
}

#endif // Model_h__